#pragma once

#include <DHT.h>

class DHT11Sensor {
public:
    /**
     * @brief 构造函数，初始化DHT实例
     */
    DHT11Sensor();

    /**
     * @brief 初始化传感器
     */
    void begin();

    /**
     * @brief 读取温度值(摄氏度)
     * @return 温度值(℃)，读取失败返回NAN
     */
    float readTemperature();

    /**
     * @brief 读取湿度值
     * @return 湿度值(%)，读取失败返回NAN
     */
    float readHumidity();

    /**
     * @brief 同时读取温度和湿度
     * @param temperature 温度输出参数(℃)
     * @param humidity 湿度输出参数(%)
     * @return 是否读取成功
     */
    bool readData(float &temperature, float &humidity);

private:
    DHT _dht;  // DHT传感器实例
    bool _initialized = false;
};